import pandas as pd

# 读取 Excel 文件
file_path = '../商品信息.xlsx'
df = pd.read_excel(file_path)

# 提取并处理 "商品简介" 列
# 首先，找出所有可能的属性名称
attributes = set()
for intro in df['商品简介']:
    parts = intro.split(' ')
    for part in parts:
        # 提取 “:” 前的属性名
        if ':' in part:
            attr_name = part.split(':')[0]
            attributes.add(attr_name)

# 创建一个字典来暂时存储处理后的数据
processed_data = {attr: [] for attr in attributes}

# 遍历原始数据，填充处理后数据的字典
for _, row in df.iterrows():
    intro = row['商品简介']
    parts = intro.split(' ')
    data = {}
    for part in parts:
        if ':' in part:
            attr_name, attr_value = part.split(':', 1)
            data[attr_name] = attr_value

    # 对于每个属性，如果在当前行中找到，则添加它的值，否则添加 None
    for attr in attributes:
        processed_data[attr].append(data.get(attr, None))

# 将处理后的数据字典转换为 DataFrame
new_df = pd.DataFrame(processed_data)

# 将原始数据集中除了“商品简介”之外的其他列添加到新的 DataFrame
other_columns = df.drop('商品简介', axis=1)
final_df = pd.concat([other_columns, new_df], axis=1)

# 保存处理后的数据到一个新的 Excel 文件
output_file_path = './处理后的商品信息_完整版.xlsx'
final_df.to_excel(output_file_path, index=False)
